Dart factory 关键词
介绍
在 Dart 中,你可以使用 factory
关键字来定义一个工厂构造函数。这个函数可以返回一个类型的实例。
工厂构造函数的一个常见用途是创建复杂的对象,例如从数据库中查询数据并将其转换成对象。它们还可以用于创建可以被缓存或共享的单例对象。
示例
class Shape {
// ...
}
class Circle extends Shape {
// ...
}
class CircleFactory {
static Circle createCircle(double radius) {
return Circle(radius);
}
factory Circle.fromJson(Map<String, dynamic> json) {
return Circle(json['radius']);
}
}
void main() {
final circle1 = CircleFactory.createCircle(10);
final circle2 = Circle.fromJson({ 'radius': 20 });
}
在上面的代码中,CircleFactory.createCircle
是一个静态工厂构造函数,它直接返回一个圆形。Circle.fromJson
是一个工厂构造函数,它从 JSON 数据中创建一个圆形。